//
// Created by win10 on 24-12-4.
//
#include <stdio.h>
#include <stdlib.h>

typedef char ElemType;
typedef  struct  BiNode
{  ElemType  data;
    struct  BiNode   *lchild,*rchild;
}BiNode,*BiTree;

//2.创建新节点
BiTree createLtree() {
      BiTree T;
      char x;
      scanf("%c",&x);
      if(x=='#') return NULL;
      if(x=='\n') return T;
      else{
          T=(BiTree)malloc(sizeof(BiNode));
          T->data=x;
          T->lchild=createLtree();
          T->rchild=createLtree();
          return T;
      }
}
//先序遍历
void preorder(BiTree T) {
    //设置一个出口==》当我们遇到叶子节点
    if(T==NULL) {
        return;
    }
    //输出当前根节点的值==》大树拆分下去 一个个 子树 的根节点
    printf("%c",T->data);
    //设置出口
    //遍历左子树
    preorder(T->lchild);
    //遍历右子树
    preorder(T->rchild);
}
int main(void){
    BiTree T;
    T=createLtree();
    preorder(T);
     return 0;
}